// 1. 引入模块
const express = require('express');
const bodyParser = require('body-parser');
const cookieParser = require('cookie-parser');
const session = require('express-session');

// 2. 创建服务器
const app = express();

// 3. 注册中间件
app.use(express.static('./public'));
// 注册post解析中间件
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// 注册cookie服务
app.use(cookieParser());
// 注册渲染引擎的方式
app.engine('htm', require('express-art-template'));
app.set('view engine', 'htm');
app.set('views', './public');

// 注册session
app.use(session({
    // 返回到客户端cookie的键
    name: 'sid',
    // secret 一般作为参与加密的字符串(签名)  MD5加密.RSA加密
    secret: 'helloword',
    // 是否每次为请求设置cookie
    saveUninitialized: false,
    // 是否在每次请求的时候重新保存
    resave: true,
    // 关于客户端cookie的描述
    cookie: {
        // 只能在http请求中完成
        httpOnly: true,
        // 最大有效时长
        maxAge: 20 * 1000,
        // 过期时间
        // expires
        // 有效范围
        path: '/'
    },
    // 存储位置：数据库，指定的文件，或者其他方式
    // store
}))

// 注册路由
app.use('/', require('./routes/home'));

// 4. 启动服务
app.listen(8080, () => {
    console.log('http://localhost:8080');
})